<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>02_天气案例_监视属性</title>
     <script src="../js/vue.js"></script>
</head>
<body>
    <!-- 
        监视属性watch：
            1.当被监视的属性变化时，回调函数自动调用，进行相关操作。
            2.监视的属性必须存在才能被监视。
            3.监视的两种写法：
                1.new Value时传入watch配置
                2.通过vm.$watch监视。
     -->
    <div id="root">
        <h1>今天天气非常{{info}}</h1>
        <button @click="changeInfo">切换天气</button>
    </div>
    <script>
        const vm = new Vue({
            el:'#root',
            data:{
                ishot:true,
            },
            computed:{
                info(){
                    return this.ishot ? '热' : '冷';
                }
            },
            methods: {
                changeInfo(){
                    this.ishot=!this.ishot;
                }
            },
            // watch:{
            //     ishot:{
            //         //handler是么时候调用？当ishot发生改变时。
            //         handler(newValue,oldValue){
            //             console.log('ishot被修改了',oldValue,newValue)
            //         }
            //     }
            // }
        });

        vm.$watch('ishot',{
            immediate:true,//初始化时让Handler调用一下
            handler(newValue,oldValue){
                console.log('ishot被修改了',newValue,oldValue)
            }
        });
    </script>
</body>
</html>